package com.lanou3g.code0409.common;

import java.util.Random;
import java.util.Scanner;

/**
 * If there are no bugs, it was created by Chen FengYao on 2018/4/9;
 * Otherwise, I don't know who created it either
 */

public class PasswordTest {
    public static void main(String[] args) {
        System.out.println("请输入密码:");
        Scanner scanner = new Scanner(System.in);
        // 接收用户输入的一行信息
        // 类型是String
        String password = scanner.nextLine();

        //判断长度
        if (password.length() < 8){
            System.out.println("密码长度不够8位");
            return;
        }

        // 判断数字  1 和 "1" 是不一样的
        boolean hasNum = false;
        for (int i = 0; i < 10; i++) {
            // String.valueOf(基本数据类型)
            // 可以把任意的 基本数据类型 变成字符串

            // 把 int 类型的 i 变成 字符串
            String num = String.valueOf(i);
            // 判断 password中是否包含 num
            boolean contains = password.contains(num);
            // 如果包含 就把hasNum变成true
            if (contains){
                hasNum = true;
            }
//            if (password.contains(String.valueOf(i))){
//                // 10次循环 只要 有一次 进入到 这个if中
//                // 就证明 密码中有 数字
//                hasNum = true;
//            }
        }
        Random random = new Random();
        if (!hasNum){
            // 如何 没有 数字
            // 即 hasNum = false
            System.out.println("没有数字");
            return;
        }


        // 判断 是否包含 大写字母
        // 65 - A ;66 -B char 'A' ASCII
        // true => 有大写字母
        // false => 没有大写字母
        boolean hasUpperCase = false;
        for(char c = 'A'; c <= 'Z' ; c ++){
            // 把char类型的数据,转换成 letter类型的数据
            String letter = String.valueOf(c);
            if (password.contains(letter)){
                hasUpperCase = true;
            }
        }
        if (!hasUpperCase){
            System.out.println("没有大写字母");
            return;
        }

        boolean hasLowerCase = false;
        for (char c = 'a'; c <= 'z' ; c++){
            String letter = String.valueOf(c);
            if (password.contains(letter)){
                hasLowerCase = true;
            }
        }
        if (!hasLowerCase){
            System.out.println("没有小写字母");
            return;
        }





        System.out.println("密码合法");


    }
}
